/*
 * @lc app=leetcode.cn id=1441 lang=javascript
 *
 * [1441] 用栈操作构建数组
 */

// @lc code=start
/**
 * @param {number[]} target
 * @param {number} n
 * @return {string[]}
 */
 var buildArray = function(target, n) {
    let stack = [];
    /**
     * ✨关键点
     * - i 和 m 作为双指针存在
     *      - m 是实际值从1始
     *      - i 是索引从0始
     * - 当 m !== target[i] 时
     *      - i 作为索引要回退 1
     */
    for(let i = 0, m = 1; i < target.length; i++, m++) {
        stack.push('Push');
        if (m !== target[i]) {
            stack.push('Pop');
            i--;
        }
    }
    return stack;
};
// @lc code=end

